閒聊
在前兩天進行了Dcard的爬蟲後,我們今天暫時緩和一下,來認識一個Python的模組-hashlib模組。
什麼是habshlib模組
habshlib模組是Python內建的模組,這個模組可以提供演算法將數據或資料轉成一個庫定的長度值(Hash Value)。
這個值通常稱為雜湊值或是哈希值,又被稱為「散列」。
常見的Hash Vaule這裡舉兩個例子:
MD5(Message-Digest Algorithm 5)
稱為「訊息摘要演算法」,是一個被廣泛使用的密碼哈希函數。
概念:是將一個數據轉換定產生一個hash value。
演算法:ms5()
SHA1(Secure Hash Aogorithm)
稱為「安全哈希演算法」,是SHA家族的其中一個演算法。
常被應用在數位簽章中。
演算法:sha1()
哈希演算法特徵
計算中英文資料Hash vaule
實作
#列出英文字串hash vaule
import hashlib
data1 = hashlib.md5() #建立md5()物件
daa.update('Teresa') #更新物件內容
print(data.digest()) #印出hash value
#列出中文字串hash vaule
import hashlib
data1 = hashlib.md5() #建立md5()物件
Hi = '你好'
data1.update(Hi.encode('utf-8')) #對中文字串進行編碼
print(data1.digest()) #印出hash value
#計算檔案的hash vaule
import hashlib
data2 = hashlib.md5()
file = 'data2.text'
with open(file,"rb") as fn : #以二進位制讀取檔案
btxt = fn.read()
data.update(btxt)
print(data2.digest())
#使用algoeithms_available屬性列出目前作業平台使用的哈希演算法
import hashlib
print(hash.algoeithms_available)
#使用algoeithms_quaranteed屬性列出跨作業系統平台使用的哈希演算法
import hashlib
print(hash.algoeithms_quaranteed)
結語
今天很開心又多認識了一個Python內建的模組,原來Hash value不只用在資料結構與演算法的課堂上,還可以用在很多地方。
明天要繼續來爬蟲了!
明天!
【Day 23】不用帳號密碼也可以登錄Instagram嗎?(實戰Selenium 1/2)
參考資料
什麼是哈希算法,如何計算?https://www.panewslab.com/zh_hk/articledetails/N6238399.html